package com.lanyun.aicorrectassistant.controller.admin.assignmentTemplates.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;

/**
 * 作业模板表基础视图对象
 *
 * @author makejava
 * @since 2025-05-12
 */
@Data
public class AssignmentTemplatesBaseVO implements Serializable {
    private static final long serialVersionUID = -17265846086954652L;

    /**
     * 作业模板ID
     * (数据库字段: id)
     */
    private Long id;
    
    /**
     * 关联老师ID
     * (数据库字段: teacher_id)
     */
    private Long teacherId;
    
    /**
     * 作业标题
     * (数据库字段: title)
     */
    private String title;

    /**
     * 作业描述
     * (数据库字段: description)
     */
    private String description;

    /**
     * 作业文件存储路径
     * (数据库字段: file_path)
     */
    private String filePath;

    /**
     * AI提示词模板（含变量占位符）
     * (数据库字段: ai_prompt_template)
     */
    private String aiPromptTemplate;

    /**
     * 老师关注方向（如：重点检查东北地理常识）
     * (数据库字段: focus_directions)
     */
    private String focusDirections;

    /**
     * 预设的AI阅卷思路（Markdown格式）
     * (数据库字段: ai_thinking_process)
     */
    private String aiThinkingProcess;

    /**
     * AI模型名称（如qwen3-235b-a22b）
     * (数据库字段: model_name)
     */
    private String modelName;

    /**
     * 模型温度参数
     * (数据库字段: temperature)
     */
    private Double temperature;

    /**
     * 最大输出Token数
     * (数据库字段: max_tokens)
     */
    private Integer maxTokens;
    
    /**
     * 是否发布 1-已发布/0-未发布
     * (数据库字段: is_published)
     */
    private Integer isPublished;
    
    /**
     * 创建时间
     * (数据库字段: create_time)
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;
    
    /**
     * 创建人
     * (数据库字段: create_by)
     */
    private String createBy;
    
    /**
     * 修改人
     * (数据库字段: update_by)
     */
    private String updateBy;
    
    /**
     * 修改时间
     * (数据库字段: update_time)
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateTime;
    
    /**
     * 是否删除 1-未删除/0-已删除
     * (数据库字段: is_deleted)
     */
    private Integer isDeleted;
    
}
